Ejemplos de Funciones Inter-Registro en Gráficos
Ejemplos de funciones top
Estos ejemplos se han realizado con la función top, pero pueden aplicarse igualmente a las funciones bottom, first y last. Sin embargo, tenga en cuenta que las funciones first y last sólo tienen efecto en las tablas pivotantes.
Ejemplo 1:
Observe la Tabla Simple a continuación, que describe el uso de las funciones top en una tabla de una sola dimensión:
Month | sum(Val) | top(sum(Val)) | sum(Val) / top(sum(Val)) |
---|---|---|---|
- | 21 | 3 | 700% |
1 | 3 | 3 | 100% |
2 | 7 | 3 | 233% |
3 | 11 | 3 | 367% |
Cuando sólo tenemos una única dimensión, la función top se referirá siempre a la primera fila de datos de la tabla (La fila total no se incluye.)
Observe que las expresiones que emplean la función top serán evaluadas también en la fila del total, puesto que el total tiene una clara relación con un segmento de columna específico, en este caso la columna entera.
Ejemplo 2:
A continuación tenemos una Tabla Simple de dos dimensiones, ordenada por el campo Grp.
Month | Grp | sum(Val) | top(sum(Val)) | top(total sum(Val)) |
---|---|---|---|---|
- | - | 21 | - | 1 |
1 | A | 1 | 1 | 1 |
2 | A | 3 | 1 | 1 |
3 | A | 5 | 1 | 1 |
1 | B | 2 | 2 | 1 |
2 | B | 4 | 2 | 1 |
3 | B | 6 | 2 | 1 |
La función top sin el cualificador total devolverá ahora la expresión evaluada en la primera fila del grupo de ordenación más interno (en este caso, dimensión Grp). Devolverá un valor para Grp = A y otro para Grp = B.
Empleando el cualificador total en el caso de múltiples dimensiones, el usuario puede referirse de nuevo a la fila superior de la tabla con el mismo valor que se está devolviendo en todas las filas. La expresión por supuesto será evaluada para el segmento de columna que expande toda la columna.
La expresión que emplea la función top sin el cualificador total dará NULL en la fila total, porque no puede asociarse claramente a un segmento de columna específico.
A continuación convertiremos la tabla simple superior en una tabla pivotante, con todos los totales activados.
Month | Grp | sum(Val) | top(sum(Val)) | top(total sum(Val)) |
---|---|---|---|---|
1 | A | 1 | 1 | 1 |
1 | B | 2 | 1 | 1 |
1 | Total | 3 | 1 | - |
2 | A | 3 | 3 | 1 |
2 | B | 4 | 3 | 1 |
2 | Total | 7 | 3 | - |
3 | A | 5 | 5 | 1 |
3 | B | 6 | 5 | 1 |
3 | Total | 11 | 5 | - |
Total | - | 21 | - | 1 |
La expresión que emplea la función top sin el cualificador total dará NULL en la fila total, porque no puede asociarse claramente a un segmento de columna específico. Sin embargo, todas las sumas parciales serán evaluadas en cada segmento de columna.
A la expresión que utiliza el cualificador total le faltarán valores en los totales parciales, pero devolverá un valor en la fila del gran total.
Ejemplo 3:
Observe la siguiente tabla simple, ordenada por el campo Grp:
Month | Grp | sum(Val) | top(sum(Val)) | sum(Val) / top(sum(Val)) |
---|---|---|---|---|
- | - | 21 | - | - |
1 | A | 1 | 1 | 100% |
2 | A | 3 | 1 | 300% |
3 | A | 5 | 1 | 500% |
1 | B | 2 | 2 | 100% |
2 | B | 4 | 2 | 200% |
3 | B | 6 | 2 | 300% |
Podemos seguir alterando la ordenación de los campos inter-registro de modo que el gráfico se ordene principalmente por el campo Month. La tabla quedará entonces más o menos así:
Month | Grp | sum(Val) | top(sum(Val)) | sum(Val) / top(sum(Val)) |
---|---|---|---|---|
- | - | 21 | - | - |
1 | A | 1 | 1 | 100% |
1 | B | 2 | 1 | 200% |
2 | A | 3 | 3 | 100% |
2 | B | 4 | 3 | 133% |
3 | A | 5 | 5 | 100% |
3 | B | 6 | 5 | 120% |
Ejemplos de la función Above
Estos ejemplos se han realizado con la función above, pero pueden aplicarse de igual manera a las funciones below, before y after. Sin embargo, observe que las funciones before y after sólo tienen sentido en las tablas pivotantes.
Ejemplo 4:
Estudie la tabla siguiente, que representa el uso de la función above en una tabla de una única dimensión:
Month | sum(Val) | above(sum(Val)) | sum(Val) / above(sum(Val)) |
---|---|---|---|
- | 21 | - | - |
1 | 3 | - | - |
2 | 7 | 3 | 233% |
3 | 11 | 7 | 157% |
La tercera columna muestra la expresión sum(Val) evaluada una fila por encima de la fila actual, lo cual puede confirmarse comparando con los valores de sum(val) en la segunda columna. La función above devuelve NULL en la primera fila, mientras no haya filas por encima para las que evaluar la expresión. La función above siempre devuelve NULL en todas las filas de total.
La cuarta columna muestra el uso más típico de esta función, para calcular la diferencia p.ej. entre diferentes periodos de tiempo.
Ejemplo 5:
Observe la siguiente tabla pivotante de dos dimensiones:
Grp | Month | sum(Val) | above(sum(Val)) | above(total sum(Val)) |
---|---|---|---|---|
A | 1 | 1 | - | - |
A | 2 | 3 | 1 | 1 |
A | 3 | 5 | 3 | 3 |
A | Total | 9 | - | - |
B | 1 | 2 | - | 5 |
B | 2 | 4 | 2 | 2 |
B | 3 | 6 | 4 | 4 |
B | Total | 12 | - | - |
Total | - | 21 | - | - |
La función above sin el cualificador total (tercera columna) solo actuará dentro de cada grupo de ordenación. Se devolverá un valor NULL en lo alto de cada segmento de columna.
Cuando se añade el cualificador total (cuarta columna), la columna entera se considerará como un segmento de columna. Solo la fila superior devolverá NULL. Todas las filas de totales se ignorarán y devolverán NULL.
Ejemplos de Funciones RowNo y NoOfRow
Este ejemplo se ha realizado con las funciones RowNo y NoOfRows, pero se pueden aplicar igualmente a las funciones ColumnNo y NoOfColumns. No obstante, tenga en cuenta que las funciones ColumnNo y NoOfColumns solo tienen sentido en el caso de las tablas pivotantes.
Ejemplo 6:
Observe la siguiente tabla pivotante de dos dimensiones:
Month | Grp | RowNo() | RowNo(total) | NoOfRows() | NoOfRows(total) |
---|---|---|---|---|---|
1 | A | 1 | 1 | 2 | 6 |
1 | B | 2 | 2 | 2 | 6 |
1 | Total | 0 | - | 2 | - |
2 | A | 1 | 3 | 2 | 6 |
2 | B | 2 | 4 | 2 | 6 |
2 | Total | 0 | - | 2 | - |
3 | A | 1 | 5 | 2 | 6 |
3 | B | 2 | 6 | 2 | 6 |
3 | Total | 0 | - | 2 | - |
Total | - | - | 0 | - | 6 |
- Column 3 La función RowNo devolverá el número de fila dentro de cada grupo de ordenación de segmento de columna. En las filas de subtotal, devolverá el número de fila 0, porque estos totales pertenecen claramente a un segmento de columna específico. En la fila de totales mayor, devolverá NULL.
- Column 4 Con el cualificador total, la función RowNo devolverá el número de fila dentro de la columna completa. En las filas de subtotales se devolverá NULL. En la fila de totales mayor, devolverá 0.
- Column 5 La función NoOfRows devolverá el número de filas de datos dentro de cada segmento de columna de grupo de ordenación. En las filas de subtotal, devolverá el mismo número que en las filas de datos. En la fila de totales mayor, devolverá NULL.
- Column 6 Con el cualificador total, la función NoOfRows devolverá el número de filas de datos dentro de la columna completa, que es lo mismo que se devuelve en la fila mayor de totales. En las filas de subtotales devolverá NULL.